package com.witmore.skyline.web.controller.vo.result;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.witmore.skyline.db.entity.CameraDO;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * Description: DeviceListResultVO
 * Author: 豆子高
 * Date: 2025/2/27 10:42
 */
@Builder
@Getter
@Setter
public class DeviceListResultVO{

    /**
     * 设备id
     */
    private Integer id;

    /**
     * 第三方传递过来的设备id 如：云机械设备id
     */
    private Long thirdDeviceId;

    /**
     * 设备序列号
     */
    private String deviceSn;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备所属企业id
     */
    private Integer orgId;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 设备型号
     */
    private String model;

    /**
     * 设备类型
     */
    private String category;

    /**
     * 设备地址
     */
    private String currentAddr;

    /**
     * 省份（从current_addr解析得出）
     */
    private String province;

    /**
     * 城市（从current_addr解析得出）
     */
    private String city;

    /**
     * 区县（从current_addr解析得出）
     */
    private String district;

    /**
     * 经度
     */
    private Double lng;

    /**
     * 纬度
     */
    private Double lat;

    /**
     * 设备工作状态（-1:离线 0:在线 1:怠速 2:负荷）
     */
    private Integer workStatus;

    /**
     * 工作总工时
     */
    private Double workTime;

    /**
     * 当天工时
     */
    private Double todayWorkTime;

    /**
     * 安装时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate createTime;

    /**
     * 剩余油位百分比
     */
    private Integer oilLevel;

    /**
     * 油箱容量(升)
     */
    private Float fuelTankCapacity;

    /**
     * 是否有液位模块 0无 1有
     */
    private Integer hasOilLevelModule;

    /**
     * 是否删除 0未删除 1已删除
     */
    private Integer isDeleted;

    /**
     * 摄像头列表信息
     */
    private List<CameraDO> cameraList;

    /**
     * 项目id
     */
    private List<Integer> projectParentIdsList;

    /**
     * 项目名称
     */
    private List<String> projectParentNames;

    /**
     * 项目id
     */
    private Integer projectId;

    /**
     * 项目名称
     */
    private String projectName;

    // ========== 驾驶员相关信息 ==========

    /**
     * 绑定的驾驶员id
     */
    private Integer driverId;

    /**
     * 驾驶员姓名
     */
    private String driverName;

    /**
     * 驾驶员手机号
     */
    private String driverPhone;

    /**
     * 驾驶员照片URL
     */
    private String driverPhoto;

    /**
     * 驾驶证类型
     */
    private String licenseType;

    /**
     * 绑定时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime bindTime;
}
